C语言程序设计(第3版)何钦铭 | 您所在的位置:网站首页 › while 循环展开 › C语言程序设计(第3版)何钦铭 |
第 4 章
循环结构
【练习 4-1 】在例 4-1 程序中,如果对 item 赋初值 0 ,运行结果是什么?为 什么?如果将精度改为 10 -3 ,运行结果有变化吗?为什么?
解答:
如果对 item 赋初值 0 , 则程序运行结果是 pi=0 , 因为 item 为 0 时不满 足 while 循环的执行条件,即不执行循环,故 pi 值为 0 。如果将精度改为
10-3 ,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度 变大使得 while 循环次数减少,必然影响到π的值。
【练习 4-2 】
运行例 4-2 程序时,如果将最后一个输入数据改为 -2 ,运行结 果有变化吗?如果第一个输入数据是 -1 ,运行结果是什么?为什么?
解答:
如果将最后一个输入数据改为 -2 , 运行结果没有变化, 因为最后一个负数是 一结束标志,不进行统计,故任意一个负数都可以。如果第一个输入数据是 -1 , 运行结果是: Grade averageis 0 ,因为第一个输入就是 -1 ,则 while 循环条件 不成立,不执行循环体。
【练习 4-3 】 序列求和 ( 1-1/4+1/7-1/10+1/13-1/16+ …) : 输入一个正实数 eps , 计算序列 1-1/4+1/7-1/10+1/13-1/16+ …的值,精确到最后一项的绝对值小于 eps (保留 6 位小数) 。试编写相应程序。
解答:
#include #include int main(void) { int denominator, flag; double item, s,eps;
printf( “ Input eps: ” ); scanf(“%lf”,&eps);
flag = 1; denominator = 1 ; item = 1.0; s = 0; while(fabs (item) >= eps) { item = flag * 1.0 / denominator; s = s + item; flag = -flag; denominator = denominator +3; } printf ( “s = %f \ n”, s);
|
CopyRight 2018-2019 实验室设备网 版权所有 |